package com.shujia.day09.bao1;
/*
    形式参数
        基本类型: 当基本数据类型作为参数传递的时候，传递是具体的数值
        引用类型:
            数组：当数组作为方法的参数类型的时候，将来需要传递数组的地址值
            具体的类：当你看到一个类作为方法的参数类型的时候，将来调用需要传入该类或该类的子类的对象
            抽象类：当你看到一个抽象类作为方法的参数类型的时候，将来调用需要传入该抽象类具体实现子类的对象
            接口：当你看到一个接口作为方法的参数类型的时候，将来调用需要传入实现了该接口的具体子类对象
 */
interface Inter1{
    void fun1();
}

class Student3 implements Inter1{
    @Override
    public void fun1() {
        System.out.println("钱志强是世界上最有钱的男人！");
    }
}

class StudentDemo3{
    //当你看到一个接口作为方法的参数类型的时候，将来调用需要传入实现了该接口的具体子类对象
    public void show1(Inter1 inter1){ //Inter1 inter1 = new Student3()
        inter1.fun1();
    }
}

public class Demo3 {
    public static void main(String[] args) {
        StudentDemo3 studentDemo3 = new StudentDemo3();
        studentDemo3.show1(new Student3());
    }
}
